package com.lanou3g.ptp.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 创建人: 武奇
 * 创建事件: 2019/8/2
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("新增、修改、查询任务实体")
public class TaskBody implements Serializable {

    @ApiModelProperty("教学环节id")
    private Long teachlinkId;

    @ApiModelProperty("任务名字")
    private String name;

    @ApiModelProperty("实习单位id, 基地id")
    private Long baseId;

    @ApiModelProperty("基地老师id, 指导教师")
    private Long baseTeacherId;

    @ApiModelProperty("指导教师id集合, 1个或2个")
    private List<Long> teacherIds;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("任务开始时间, 时间格式 yyyy-MM-dd")
    private Date taskStartTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("任务结束时间, 时间格式 yyyy-MM-dd")
    private Date taskEndTime;

    @ApiModelProperty("日期模式选择, 0工作日, 1每周几, 2具体日期")
    private Integer dateTime;

    @ApiModelProperty("具体的每周几的集合, 0周日, 6周六")
    private List<Integer> timeCheckList;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("具体的日期集合")
    private List<Date> ttimes;

    @ApiModelProperty("报名模式, 0统一报名, 1自主报名")
    private Integer distribution;

    @ApiModelProperty("统一报名模式的所有学生id")
    private List<Long> studentIds;

    @ApiModelProperty("自主报名的开始报名时间, 时间格式为时间戳")
    private Date applyStartTime;

    @ApiModelProperty("自主报名的结束报名时间, 时间格式为时间戳")
    private Date applyEndTime;

    @ApiModelProperty("基地经度")
    private String longitude;

    @ApiModelProperty("基地纬度")
    private String latitude;

    @ApiModelProperty("打卡半径")
    private Integer radius;

    @ApiModelProperty("评分制, 0: 五分制, 1: 百分制")
    private Integer gradingType;

    @ApiModelProperty("指导老师评分权重")
    private Double teacherMaturityScore;

    @ApiModelProperty("实习单位评分权重")
    private Double baseMaturityScore;

    @ApiModelProperty("考勤评分")
    private Double checkScore;

    @ApiModelProperty("日志评分")
    private Double logScore;

    @ApiModelProperty("阶段报告")
    private Double reportScore;

    @ApiModelProperty("平时 1")
    private Double ordinaryScore1;

    @ApiModelProperty("平时 2")
    private Double ordinaryScore2;

    @ApiModelProperty("其他")
    private Double otherScore;

    @ApiModelProperty("签到预警")
    private Long signinWarning;

    @ApiModelProperty("日志预警")
    private Long logWarning;







}
